雖然 GO 裡已經有 fmt.print 這項函式了
但是 fmt.print 的函式偏簡單
比如沒有時間,也沒有源代碼的行數等
對於我們要排查問題,我們會使用 log 包
package main
import "log"
func main() {
log.Println("IT鐵人競賽 DAY 21")
log.Printf("IT鐵人競賽 DAY %d\n",21)
}
可以看出 log 自帶了時間時間軸
2019/10/07 21:03:32 IT鐵人競賽 DAY 21
2019/10/07 21:03:32 IT鐵人競賽 DAY 21
有了這些時間對於我們排查問題非常有用
如果我們 log 裡需要更多訊息
我們會在 main 函數前 新增一個 init 的函式
func init(){
log.SetFlags(log.Ldate|log.Lshortfile)
}
在 SetFlags 裡設定我們需要的前綴詞
這個範例裡我們新增了 log.Ldate 和 log.Lshortfile
2019/10/07 log.go:6: IT鐵人競賽 DAY 21
2019/10/07 log.go:7: IT鐵人競賽 DAY 21
可以看得出來除了剛剛的時間軸還多了「文件和行號」
這邊是我們可以設定的前綴詞
const (
Ldate = 1 << iota //日期示例: 2009/01/23
Ltime //時間示例: 01:23:23
Lmicroseconds //毫秒示例: 01:23:23.123123.
Llongfile //絕對路徑和行號: /a/b/c/d.go:23
Lshortfile //文件和行號: d.go:23.
LUTC //日期時間轉為0時區的
LstdFlags = Ldate | Ltime //Go提供的標準抬頭訊息
)